#
#                     Artistic Style 3.2 beta
#                     Maintained by: Jim Pattee
#                     Original Author: Tal Davidson
#
#Usage:
#------
#            astyle [OPTIONS] File1 File2 File3 [...]
#
#            astyle [OPTIONS] < Original > Beautified
#
#    When indenting a specific file, the resulting indented file RETAINS
#    the original file-name. The original pre-indented file is renamed,
#    with a suffix of '.orig' added to the original filename.
#
#    Wildcards (* and ?) may be used in the filename.
#    A 'recursive' option can process directories recursively.
#    Multiple file extensions may be separated by a comma.
#
#    By default, astyle is set up to indent with four spaces per indent,
#    a maximal indentation of 40 spaces inside continuous statements,
#    a minimum indentation of eight spaces inside conditional statements,
#    and NO formatting options.
#
#Options:
#--------
#    This  program  follows  the  usual  GNU  command line syntax.
#    Long options (starting with '--') must be written one at a time.
#    Short options (starting with '-') may be appended together.
#    Thus, -bps4 is the same as -b -p -s4.
#
#Option Files:
#-------------
#    Artistic Style looks for a default option file and/or a project
#    option file in the following order:
#    1. The command line options have precedence.
#    2. The project option file has precedence over the default file
#       o the file name indicated by the --project= command line option.
#       o the file named .astylerc or _ astylerc.
#       o the file name identified by ARTISTIC_STYLE_PROJECT_OPTIONS.
#       o the file is disabled by --project=none on the command line.
#    3. The default option file that can be used for all projects.
#       o the file path indicated by the --options= command line option.
#       o the file path indicated by ARTISTIC_STYLE_OPTIONS.
#       o the file named .astylerc in the HOME directory (for Linux).
#       o the file name astylerc in the APPDATA directory (for Windows).
#       o the file is disabled by --project=none on the command line.
#    Long options within the option files may be written without '--'.
#    Line-end comments begin with a '#'.
#
#Disable Formatting:
#-------------------
#    Disable Block
#    Blocks of code can be disabled with the comment tags *INDENT-OFF*
#    and *INDENT-ON*. It must be contained in a one-line comment.
#
#    Disable Line
#    Padding of operators can be disabled on a single line using the
#    comment tag *NOPAD*. It must be contained in a line-end comment.
#
#Brace Style Options:
#--------------------
#    default brace style
#    If no brace style is requested, the opening braces will not be
#    changed and closing braces will be broken from the preceding line.
#
#    --style=allman  OR  --style=bsd  OR  --style=break  OR  -A1
#    Allman style formatting/indenting.
#    Broken braces.
#
#    --style=java  OR  --style=attach  OR  -A2
#    Java style formatting/indenting.
#    Attached braces.
#
#    --style=kr  OR  --style=k&r  OR  --style=k/r  OR  -A3
#    Kernighan & Ritchie style formatting/indenting.
#    Linux braces.
#
#    --style=stroustrup  OR  -A4
#    Stroustrup style formatting/indenting.
#    Linux braces, with broken closing headers.
#
#    --style=whitesmith  OR  -A5
#    Whitesmith style formatting/indenting.
#    Broken, indented braces.
#    Indented class blocks and switch blocks.
#
#    --style=vtk  OR  -A15
#    VTK style formatting/indenting.
#    Broken, indented braces except for the opening braces.
#
#    --style=ratliff  OR  --style=banner  OR  -A6
#    Ratliff style formatting/indenting.
#    Attached, indented braces.
#
#    --style=gnu  OR  -A7
#    GNU style formatting/indenting.
#    Broken braces, indented blocks.
--style=linux  
#
#    --style=linux  OR  --style=knf  OR  -A8
#    Linux style formatting/indenting.
#    Linux braces, minimum conditional indent is one-half indent.
#
#    --style=horstmann  OR  --style=run-in  OR  -A9
#    Horstmann style formatting/indenting.
#    Run-in braces, indented switches.
#
#    --style=1tbs  OR  --style=otbs  OR  -A10
#    One True Brace Style formatting/indenting.
#    Linux braces, add braces to all conditionals.
#
#    --style=google  OR  -A14
#    Google style formatting/indenting.
#    Attached braces, indented class modifiers.
#
#    --style=mozilla  OR  -A16
#    Mozilla style formatting/indenting.
#    Linux braces, with broken braces for structs and enums,
#    and attached braces for namespaces.
#
#    --style=webkit  OR  -A17
#    WebKit style formatting/indenting.
#    Linux braces, with attached closing headers.
#
#    --style=pico  OR  -A11
#    Pico style formatting/indenting.
#    Run-in opening braces and attached closing braces.
#    Uses keep one line blocks and keep one line statements.
#
#    --style=lisp  OR  -A12
#    Lisp style formatting/indenting.
#    Attached opening braces and attached closing braces.
#    Uses keep one line statements.
#
#Tab Options:
#------------
#    default indent option
#    If no indentation option is set, the default
#    option of 4 spaces per indent will be used.
#
#    --indent=spaces=#  OR  -s#
--indent=spaces=4
#    Indent using # spaces per indent. Not specifying #
#    will result in a default of 4 spaces per indent.
#
#    --indent=tab  OR  --indent=tab=#  OR  -t  OR  -t#
#    Indent using tab characters, assuming that each
#    indent is # spaces long. Not specifying # will result
#    in a default assumption of 4 spaces per indent.
#
#    --indent=force-tab=#  OR  -T#
#    Indent using tab characters, assuming that each
#    indent is # spaces long. Force tabs to be used in areas
#    AStyle would prefer to use spaces.
#
#    --indent=force-tab-x=#  OR  -xT#
#    Allows the tab length to be set to a length that is different
#    from the indent length. This may cause the indentation to be
#    a mix of both spaces and tabs. This option sets the tab length.
#
#Brace Modify Options:
#---------------------
#    --attach-namespaces  OR  -xn
#    Attach braces to a namespace statement.
#
#    --attach-classes  OR  -xc
#    Attach braces to a class statement.
#
#    --attach-inlines  OR  -xl
#    Attach braces to class inline function definitions.
#
#    --attach-extern-c  OR  -xk
#    Attach braces to an extern "C" statement.
#
#    --attach-closing-while  OR  -xV
--attach-closing-while  
#    Attach closing while of do-while to the closing brace.
#
#Indentation Options:
#--------------------
#    --indent-classes  OR  -C
#    Indent 'class' blocks so that the entire block is indented.
#
#    --indent-modifiers  OR  -xG
#    Indent 'class' access modifiers, 'public:', 'protected:' or
#    'private:', one half indent. The rest of the class is not
#    indented. 
#
#    --indent-switches  OR  -S
#    Indent 'switch' blocks, so that the inner 'case XXX:'
#    headers are indented in relation to the switch block.
#
#    --indent-cases  OR  -K
#    Indent case blocks from the 'case XXX:' headers.
#    Case statements not enclosed in blocks are NOT indented.
#
#    --indent-namespaces  OR  -N
#    Indent the contents of namespace blocks.
#
#    --indent-after-parens  OR  -xU
#    Indent, instead of align, continuation lines following lines
#    that contain an opening paren '(' or an assignment '='. 
#
#    --indent-continuation=#  OR  -xt#
#    Indent continuation lines an additional # indents.
#    The valid values are 0 thru 4 indents.
#    The default value is 1 indent.
#
#    --indent-labels  OR  -L
#    Indent labels so that they appear one indent less than
#    the current indentation level, rather than being
#    flushed completely to the left (which is the default).
#
#    --indent-preproc-block  OR  -xW
--indent-preproc-block
#    Indent preprocessor blocks at brace level 0.
#    Without this option the preprocessor block is not indented.
#
#    --indent-preproc-cond  OR  -xw
#    Indent preprocessor conditional statements #if/#else/#endif
#    to the same level as the source code.
#
#    --indent-preproc-define  OR  -w
--indent-preproc-define
#    Indent multi-line preprocessor #define statements.
#
#    --indent-col1-comments  OR  -Y
--indent-col1-comments  
#    Indent line comments that start in column one.
#
#    --min-conditional-indent=#  OR  -m#
--min-conditional-indent=0  
#    Indent a minimal # spaces in a continuous conditional
#    belonging to a conditional header.
#    The valid values are:
#    0 - no minimal indent.
#    1 - indent at least one additional indent.
#    2 - indent at least two additional indents.
#    3 - indent at least one-half an additional indent.
#    The default value is 2, two additional indents.
#
#    --max-continuation-indent=#  OR  -M#
--max-continuation-indent=120  
#    Indent a maximal # spaces in a continuation line,
#    relative to the previous line.
#    The valid values are 40 thru 120.
#    The default value is 40.
#
#Padding Options:
#----------------
#    --break-blocks  OR  -f
#    Insert empty lines around unrelated blocks, labels, classes, ...
--break-blocks
#    --break-blocks=all  OR  -F
#    Like --break-blocks, except also insert empty lines 
#    around closing headers (e.g. 'else', 'catch', ...).
#--break-blocks=all
#    --pad-oper  OR  -p
--pad-oper  
#    Insert space padding around operators.
#
#    --pad-comma  OR  -xg
--pad-comma  
#    Insert space padding after commas.
#
#    --pad-paren  OR  -P
#    Insert space padding around parenthesis on both the outside
#    and the inside.
#
#    --pad-paren-out  OR  -d
#    Insert space padding around parenthesis on the outside only.
#
#    --pad-first-paren-out  OR  -xd
#    Insert space padding around first parenthesis in a series on
#    the outside only.
#
#    --pad-paren-in  OR  -D
#    Insert space padding around parenthesis on the inside only.
#
#    --pad-header  OR  -H
--pad-header  
#    Insert space padding after paren headers (e.g. 'if', 'for'...).
#
#    --unpad-paren  OR  -U
--unpad-paren  
#    Remove unnecessary space padding around parenthesis. This
#    can be used in combination with the 'pad' options above.
#
#    --delete-empty-lines  OR  -xd
--delete-empty-lines  
#    Delete empty lines within a function or method.
#    It will NOT delete lines added by the break-blocks options.
#
#    --fill-empty-lines  OR  -E
#    Fill empty lines with the white space of their
#    previous lines.
#
#    --align-pointer=type    OR  -k1
--align-pointer=type    
#    --align-pointer=middle  OR  -k2
#    --align-pointer=name    OR  -k3
#    Attach a pointer or reference operator (*, &, or ^) to either
#    the operator type (left), middle, or operator name (right).
#    To align the reference separately use --align-reference.
#
#    --align-reference=none    OR  -W0
#    --align-reference=type    OR  -W1
--align-reference=type    
#    --align-reference=middle  OR  -W2
#    --align-reference=name    OR  -W3
#    Attach a reference operator (&) to either
#    the operator type (left), middle, or operator name (right).
#    If not set, follow pointer alignment.
#
#Formatting Options:
#-------------------
#    --break-closing-braces  OR  -y
#    Break braces before closing headers (e.g. 'else', 'catch', ...).
#    Use with --style=java, --style=kr, --style=stroustrup,
#    --style=linux, or --style=1tbs.
#
#    --break-elseifs  OR  -e
#    Break 'else if()' statements into two different lines.
#
#    --break-one-line-headers  OR  -xb
#    Break one line headers (e.g. 'if', 'while', 'else', ...) from a
#    statement residing on the same line.
#
#    --add-braces  OR  -j
--add-braces  
#    Add braces to unbraced one line conditional statements.
#
#    --add-one-line-braces  OR  -J
#    Add one line braces to unbraced one line conditional
#    statements.
#
#    --remove-braces  OR  -xj
#    Remove braces from a braced one line conditional statements.
#
#    --break-return-type       OR  -xB
#    --break-return-type-decl  OR  -xD
#    Break the return type from the function name. Options are
#    for the function definitions and the function declarations.
#
#    --attach-return-type       OR  -xf
#    --attach-return-type-decl  OR  -xh
#    Attach the return type to the function name. Options are
#    for the function definitions and the function declarations.
#
#    --keep-one-line-blocks  OR  -O
#    Don't break blocks residing completely on one line.
#
#    --keep-one-line-statements  OR  -o
#    Don't break lines containing multiple statements into
#    multiple single-statement lines.
#
#    --convert-tabs  OR  -c
--convert-tabs  
#    Convert tabs to the appropriate number of spaces.
#
#    --close-templates  OR  -xy
--close-templates  
#    Close ending angle brackets on template definitions.
#
#    --remove-comment-prefix  OR  -xp
#    Remove the leading '*' prefix on multi-line comments and
#    indent the comment text one indent.
#
#    --max-code-length=#    OR  -xC#
--max-code-length=200    
#    --break-after-logical  OR  -xL
--break-after-logical  
#    max-code-length=# will break the line if it exceeds more than
#    # characters. The valid values are 50 thru 200.
#    If the line contains logical conditionals they will be placed
#    first on the new line. The option break-after-logical will
#    cause the logical conditional to be placed last on the
#    previous line.
#
#    --mode=c
--mode=c
#    Indent a C or C++ source file (this is the default).
#
#    --mode=java
#    Indent a Java source file.
#
#    --mode=cs
#    Indent a C# source file.
#
#Objective-C Options:
#--------------------
#    --pad-method-prefix  OR  -xQ
#    Insert space padding after the '-' or '+' Objective-C
#    method prefix.
#
#    --unpad-method-prefix  OR  -xR
#    Remove all space padding after the '-' or '+' Objective-C
#    method prefix.
#
#    --pad-return-type  OR  -xq
#    Insert space padding after the Objective-C return type.
#
#    --unpad-return-type  OR  -xr
#    Remove all space padding after the Objective-C return type.
#
#    --pad-param-type  OR  -xS
#    Insert space padding after the Objective-C return type.
#
#    --unpad-param-type  OR  -xs
#    Remove all space padding after the Objective-C return type.
#
#    --align-method-colon  OR  -xM
#    Align the colons in an Objective-C method definition.
#
#    --pad-method-colon=none    OR  -xP
#    --pad-method-colon=all     OR  -xP1
#    --pad-method-colon=after   OR  -xP2
#    --pad-method-colon=before  OR  -xP3
#    Add or remove space padding before or after the colons in an
#    Objective-C method call.
#
#Other Options:
#--------------
#    --suffix=####
#    Append the suffix #### instead of '.orig' to original filename.
#
#    --suffix=none  OR  -n
--suffix=none  
#    Do not retain a backup of the original file.
#
#    --recursive  OR  -r  OR  -R
#    Process subdirectories recursively.
#
#    --dry-run
#    Perform a trial run with no changes made to check for formatting.
#
#    --exclude=####
#    Specify a file or directory #### to be excluded from processing.
#
#    --ignore-exclude-errors  OR  -i
#    Allow processing to continue if there are errors in the exclude=####
#    options. It will display the unmatched excludes.
#
#    --ignore-exclude-errors-x  OR  -xi
#    Allow processing to continue if there are errors in the exclude=####
#    options. It will NOT display the unmatched excludes.
#
#    --errors-to-stdout  OR  -X
--errors-to-stdout  
#    Print errors and help information to standard-output rather than
#    to standard-error.
#
#    --preserve-date  OR  -Z
--preserve-date  
#    Preserve the original file's date and time modified. The time
#     modified will be changed a few micro seconds to force a compile.
#
#    --verbose  OR  -v
--verbose  
#    Verbose mode. Extra informational messages will be displayed.
#
#    --formatted  OR  -Q
#    Formatted display mode. Display only the files that have been
#    formatted.
#
#    --quiet  OR  -q
#    Quiet mode. Suppress all output except error messages.
#
#    --lineend=windows  OR  -z1
--lineend=windows  
#    --lineend=linux    OR  -z2
#    --lineend=macold   OR  -z3
#    Force use of the specified line end style. Valid options
#    are windows (CRLF), linux (LF), and macold (CR).
#
#Command Line Only:
#------------------
#    --options=####
#    --options=none
#    Specify a default option file #### to read and use.
#    It must contain a file path and a file name.
#    'none' disables the default option file.
#
#    --project
#    --project=####
#    --project=none
#    Specify a project option file #### to read and use.
#    It must contain a file name only, without a directory path.
#    The file should be included in the project top-level directory.
#    The default file name is .astylerc or _astylerc.
#    'none' disables the project or environment variable file.
#
#    --ascii  OR  -I
#    The displayed output will be ascii characters only.
#
#    --version  OR  -V
#    Print version number.
#
#    --help  OR  -h  OR  -?
#    Print this help message.
#
#    --html  OR  -!
#    Open the HTML help file "astyle.html" in the default browser.
#    The documentation must be installed in the standard install path.
#
#    --html=####
#    Open a HTML help file in the default browser using the file path
#    ####. The path may include a directory path and a file name, or a
#    file name only. Paths containing spaces must be enclosed in quotes.
#
#    --stdin=####
#    Use the file path #### as input to single file formatting.
#    This is a replacement for redirection.
#
#    --stdout=####
#    Use the file path #### as output from single file formatting.
#    This is a replacement for redirection.
#
#
#